package transferencia;


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.ResultSet;
import java.util.List;

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Esta classe é responsável por agrupar os dados relativos a uma dada disciplina,
 * obtida da camada de dados.
 * @author lljotall
 */
public class DisciplinaTO {
    
    public String sigla;
    public String nome;
    public List<String> preRequisitos;
    
    
    /**
     * Cria uma representação de uma disciplina baseado em sua sigla, seu nome e
     * seus pré-requisitos.
     * @param sigla Sigla da disciplina.
     * @param nome Nome da disciplina.
     * @param preRequisitos Um List<> contendo a sigla de todos os pré-requisitos.
     */
    public DisciplinaTO(String sigla, String nome, List<String> preRequisitos){
        this.sigla = sigla;
        this.nome = nome;
        this.preRequisitos = preRequisitos;
    }
    
    /**
     * Retorna a sigla da disciplina.
     * @return Sigla da disciplina.
     */
    public String getSigla() {
        return sigla;
    }

    /**
     * Configura a sigla da disciplina.
     * @param sigla 
     */
    public void setSigla(String sigla) {
        this.sigla = sigla;
    }
    
    /**
     * Retorna a sigla da disciplina.
     * @return Sigla da disciplina.
     */
    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    /**
     * Retorna um List contendo as siglas dos pré-requisitos da disciplina.
     * @return um List contendo as siglas dos pré-requisitos da disciplina.
     */
    public List<String> getPreRequisitos() {
        return preRequisitos;
    }

    public void setPreRequisitos(List<String> preRequisitos) {
        this.preRequisitos = preRequisitos;
    }
    
    @Override
    public String toString(){
        String strSigla = "sigla: "+sigla+"\n";
        String strNome = "nome: "+nome+"\n";
        String strPreRequisito = "";
        
        if(preRequisitos != null){
            for(String preRequisito: preRequisitos){
                strPreRequisito = strPreRequisito.concat("    Pre-requisito: "+preRequisito+"\n");
            }
        }
        
        return strSigla+strNome+strPreRequisito;
    }
    
    /**
     * Retorna uma string com a subárvore de pré-requisitos da disciplina
     * Exemplo:
     * F 428
     *   |_____________
     *   |      |      |
     * F 328  MA111  MA141  
     * @return String
     */


    
    public void setDisciplinaTO(String Sigla){
                    try{
                        String host = "jdbc:mysql://143.106.150.216:3306/SatodaDB?zeroDateTimeBehavior=convertToNull";
                        String uName = "satoda";
                        String uPass = "adotas2014";
                        
                        Connection con = DriverManager.getConnection(host, uName, uPass);
                        
                        Statement stmt = con.createStatement( );
                        String SQL = "SELECT * FROM DISCIPLINA WHERE Codigo = '"+Sigla+"';";
                        ResultSet rs = stmt.executeQuery(SQL);
                        
                        while(rs.next()){
                            DisciplinaTO nova = new DisciplinaTO("x", "y", null);
                            String s = rs.getString("Codigo");
                            String n = rs.getString("NOME");
                            
                        }
                    }
                    catch( SQLException err ){
                        System.out.println(err.getMessage());
                    }
    }

    public String stringPreReqTree(){
        String preReqTree = "";
        String firstLine = "";
        String secondLine = "";
        String thirdLine = "";
        
        if(preRequisitos != null){
            /*Primeiro elemento*/
            firstLine = "  |";
            secondLine = "  |";
            thirdLine = preRequisitos.get(0);
            
            /*Demais pré-requisitos*/
            for(String preRequisito: preRequisitos.subList(1,preRequisitos.size())){
                firstLine = firstLine.concat("_______");
                secondLine = secondLine.concat("      |");
                thirdLine = thirdLine.concat("  "+preRequisito);
            }
            
            /*Unindo tudo*/
            preReqTree = firstLine+"\n\r"+secondLine+"\n\r"+thirdLine+"\n\r";
        }
        
        return preReqTree;
    }
}
